import logging
from redis import StrictRedis

# 配置文件的加载
class Config(object):
    # import os, base64
    # base64.b64decode(os.urandom(48))

    # 配置密钥
    SECRET_KEY = 'q7pBNcWPgmF6BqB6b5VICF7z7pI+90o0O4CaJsFGjzRsYiya9SEgUDytXvzFsIaR'
    # 开启调试模式
    DEBUG = True
    # 配置MYSQL数据库连接信息
    SQLALCHEMY_DATABASE_URI = 'mysql://root:12345678@127.0.0.1:3306/information'
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    REDIS_IP = '127.0.0.1'
    REDIS_PORT = 6379

#     指定存储信息为redis
    SESSION_TYPE = 'redis'
#     指定session储存在后端的位置
    SESSION_REDIS = StrictRedis(host=REDIS_IP, port=REDIS_PORT)
#     是否使用secret_key签名你的session
    SESSION_USE_SIGNER = True
#     SESSION_PERMANENT时间是TRUE永久的,时间是31天PERMANENT_SESSION_LIFETIME
#   PERMANENT_SESSION_LIFETIME设置时间
    PERMANENT_SESSION_LIFETIME = 60*60*24 #一天有效期


# 下面是封装不同环境下的配置信息

class DevlopmentConfig(Config):
    # 开发环境
    #开发环境和父类环境基本一致
    LEVEL_LOG = logging.DEBUG

class ProductionConfig(Config):
#     生产环境
    DEBUG = False
    SQLALCHEMY_DATABASE_URI = 'mysql://root:12345678@127.0.0.1:3306/information_pro'
    LEVEL_LOG = logging.ERROR
class UnittestConfig(Config):
#     测试环境
    DEBUG = True
    SQLALCHEMY_DATABASE_URI = 'mysql://root:12345678@127.0.0.1:3306/information_case'
    LEVEL_LOG = logging.DEBUG

configs = {
    'dev': DevlopmentConfig,
    'pro': ProductionConfig,
    'unit': UnittestConfig
}